package com.fowo.api.model.nav.order.rule;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import java.util.List;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 自发货订单规则 导入导出辅助模型 */
@Getter
@Setter
public class NavOrderRuleExcelPo {

  @NotBlank(message = "规则名称不能为空")
  @Size(max = 50, message = "规则名称长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*规则名称")
  private String name;

  @NotBlank(message = "规则类型不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*规则类型")
  private String type;

  @NotBlank(message = "规则状态不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*规则状态")
  private String status;

  @NotBlank(message = "订单平台不能为空")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "*订单平台")
  private String baseOrderPlatform;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单站点")
  private String baseOrderSiteName;

  @ExcelIgnore
  @ExcelProperty(value = "订单站点")
  private List<Long> baseOrderSite;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单店铺")
  private String baseOrderShopInfoShopName;

  @ExcelIgnore
  @ExcelProperty(value = "订单店铺")
  private List<Long> baseOrderShopInfo;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货仓库")
  private String deliveryWarehouseName;

  @ExcelIgnore
  @ExcelProperty(value = "发货仓库")
  private List<Long> deliveryWarehouse;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流商")
  private String logisticsProviderName;

  @ExcelIgnore
  @ExcelProperty(value = "物流商")
  private List<Long> logisticsProvider;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式")
  private String logisticsChannelLabel;

  @ExcelIgnore
  @ExcelProperty(value = "物流方式")
  private List<Long> logisticsChannel;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货仓库")
  private String warehouseActDeliveryWarehouseName;

  @ExcelIgnore
  @ExcelProperty(value = "发货仓库")
  private Long warehouseActDeliveryWarehouse;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "备选仓库")
  private String warehouseActOptionWarehouseName;

  @ExcelIgnore
  @ExcelProperty(value = "备选仓库")
  private List<Long> warehouseActOptionWarehouse;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "自动覆盖订单原有仓库")
  private String warehouseActAutoCoverOriginal;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "库存扣减类型")
  private String warehouseActInventoryDeductionType;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "海外仓物流自动设定对应海外仓")
  private String logisticsActOverseasWarehouseAutoMapping;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "设定方式")
  private String logisticsActSettingMethod;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流方式")
  private String logisticsActChannelLabel;

  @ExcelIgnore
  @ExcelProperty(value = "物流方式")
  private List<Long> logisticsActChannel;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "自动覆盖订单原有物流")
  private String logisticsActAutoCoverOriginal;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "比价方式")
  private String logisticsActPriceParity;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "省州、城市为空填充")
  private String logisticsAddressActFill;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "省州全称/简称替换")
  private String logisticsAddressActSelectQJ;

  @Size(max = 50, message = "门牌号解析1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "门牌号解析1")
  private String logisticsAddressActHouseNoAnalysis1;

  @Size(max = 50, message = "门牌号解析2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "门牌号解析2")
  private String logisticsAddressActHouseNoAnalysis2;

  @Size(max = 50, message = "门牌号解析3长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "门牌号解析3")
  private String logisticsAddressActHouseNoAnalysis3;

  @Size(max = 50, message = "电话号码简化1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电话号码简化1")
  private String addressActPhoneSimplify1;

  @Size(max = 50, message = "电话号码简化2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电话号码简化2")
  private String addressActPhoneSimplify2;

  @Size(max = 50, message = "电话号码简化3长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电话号码简化3")
  private String addressActPhoneSimplify3;

  @Size(max = 50, message = "电话号码简化4长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "电话号码简化4")
  private String addressActPhoneSimplify4;

  @Size(max = 50, message = "邮编处理1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮编处理1")
  private String addressActPostHandle1;

  @Size(max = 50, message = "邮编处理2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮编处理2")
  private String addressActPostHandle2;

  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "标发规则")
  private String issuActRules;
}
